package org.farm.system.infra.basic.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * @author Frank Zou
 * @version v0.0.1
 * @date 2025/5/5
 * @description 标签表。
 */
@Data
@TableName(value = "tag")
public class Tag implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * Tag ID。
     */
    @TableId(value = "id", type = IdType.INPUT)
    private Long id;

    /**
     * 标签 ID。
     */
    @TableField(value = "`name`")
    private String name;

    /**
     * 标签描述。
     */
    @TableField(value = "description")
    private String description;

    /**
     * 状态（1： Enable；0：Disabled）。
     */
    @TableField(value = "`status`")
    private Integer status;

    /**
     * 标签图标。
     */
    @TableField(value = "icon")
    private String icon;

    /**
     * 标签显示图片。
     */
    @TableField(value = "cover_img")
    private String coverImg;

    /**
     * 排序。
     */
    @TableField(value = "sort")
    private Integer sort;

    /**
     * 版本号。
     */
    @TableField(value = "lock_version")
    private Integer lockVersion;

    /**
     * 创建时间。
     */
    @TableField(value = "created_at")
    private Date createdAt;

    /**
     * 创建人。
     */
    @TableField(value = "created_by")
    private Long createdBy;

    /**
     * 修改时间。
     */
    @TableField(value = "updated_at")
    private Date updatedAt;

    /**
     * 修改人。
     */
    @TableField(value = "updated_by")
    private Long updatedBy;

    /**
     * 是否删除。
     */
    @TableField(value = "deleted")
    private Integer deleted;
}